import { reqGoodsInfo } from "@/api"
import { reqAddShopping } from "@/api"

export default {
    actions: {
        // 获取商品详情数据
        async getGoodsInfo({ commit }, value) {
            let result = await reqGoodsInfo(value)
            if (result.code == 200) {
                commit("GETGOODSINFO", result.data)
            }
        },

        // 添加商品到购物车
        async addShopping({ commit }, { skuId, skuNum }) {
            // 发送请求，前台将数据带给服务器
            let result = await reqAddShopping(skuId, skuNum)
            // 这里不需要三连环，因为服务器并没有返回给我们数据，只需要知道发请求成功or失败并返回相应的信息就行。
            if (result.code == 200) {
                return "ok"
            } else {
                return Promise.reject(new Error("faile"))
            }
        }
    },
    mutations: {
        GETGOODSINFO(state, value) {
            state.goodsInfo = value
        }
    },
    state: {
        goodsInfo: {},
    },
    getters: {
        // 导航路径数据
        categoryView(state) {
            return state.goodsInfo.categoryView || {}
        },
        // 右侧商品详细数据
        skuInfo(state) {
            return state.goodsInfo.skuInfo || {}
        },
        // 右侧商品售卖属性数据
        spuSaleAttrList(state) {
            return state.goodsInfo.spuSaleAttrList || {}
        }
    }
}